package jonggyuni.basic;

public class J11_SungJuk_v4 {

	public static void main(String[] args) {
		//객체지향 기법을 이용해서 성적처리 프로그램 작성
		J11SungJuk sj = new J11SungJuk();
		sj.name ="지현";
		sj.kor=98;
		sj.eng=99;
		sj.math=100;
		//초기화가 불편 - 생성자를 이용하자!!
		sj = new J11SungJuk("수지",85,65,70 );
		
		System.out.println(sj.name);
		System.out.println(sj.kor);
		System.out.println(sj.eng);
		System.out.println(sj.math);
		
		System.out.println(sj.getTotal());
		System.out.println(sj.getAverage());
		sj.getGrade();//호출을 해야 grd를 불러온다.
		System.out.println(sj.grd); //주의!!!!
	}// main

}// class

//성적 데이터 : 이름, 국어, 영어, 수학, 총점, 평균, 학점
//성적 메서드 : 총점구하기 , 평균구하기, 학점구하기
//          결과 출력하기
class J11SungJuk {
	String name;
	int kor,eng,math,tot;
	double avg;
	char grd;
	
	public J11SungJuk() { // 기본 생성자는 필요함!! 없으면 문제가 생긴다.
		//만일, 기본 생성자 없이 사용자 정의 생성자만 만든다면?
		
	}
	public J11SungJuk(String name, int kor, int eng, int math){
		this.name = name; //this.name 은 J11SungJuk안에 선언된 name임. this를 통해서 헷갈리지 않게!!!
		this.kor = kor; //즉, this를 통해 현재 클래스 안에 있는 변수를 사용하겠다고 나타냄.
		this.eng = eng;
		this.math = math;
		
	}//사용자 정의 생성자
	
	//메서드 정의
/*	void getTotal(){ //메서드 앞에는 동사를 붙이자!
		tot = kor+eng+math;
	}
	void getAverage(){
		avg = (kor+eng+math)/3;
	}
	void getGrade(){
		switch((int)(kor+eng+math)/3){
			case 10: case 9: grd = '수';
			break;
			case 8: grd='우';
			break;
			case 7: grd='미';
			break;
			case 6: grd='양';
			break;
			default: grd='가';
		}
	}*/ //메서드의 반환값 유형을 무조건 void로 지정
	
	int getTotal(){ //메서드 앞에는 동사를 붙이자!
		tot = kor+eng+math;
		return tot;
	}
	double getAverage(){
		// int imsi = getTotal();
		// avg = imsi/3;
		avg = getTotal()/3;
		return avg;
	}
	void getGrade(){
		switch((int)getAverage()){
		case 10: case 9: grd = '수';
		break;
		case 8: grd='우';
		break;
		case 7: grd='미';
		break;
		case 6: grd='양';
		break;
		default: grd='가';
		}
	}//메서드의 반환값 유형을 겨로가값의 종류에 따라 지정
	
}
